﻿/***************************************************************
 * Class Name : Goal
 * Function   : A base class for all orders.. these are orders for squads or player input..
 *				
 * Created by : Marek Rabas
 **************************************************************/

using System;
using UnityEngine;

[System.Serializable]
public class AgentOrder
{
    public enum E_Status
    {
        E_INVALID,
        E_WAITING,
        E_EXECUTING,
        E_DONE,
        E_FAILED,
    }

	public enum E_OrderType
	{
		E_NONE,
		E_GOTO,     //移动
        E_ATTACK,   //攻击
        E_DODGE,    //闪避
        E_USE,      //使用技能/物品
        E_STOPMOVE, //停止移动
    }

	public E_OrderType Type;
	public Vector3 Position;
    public Vector3 Direction;
    public InteractionGameObject InteractionObject;     //触发机关
    public E_InteractionType Interaction;               //机关状态
    public Agent Target;                                //对象
    public E_AttackType AttackType;
    public float MoveSpeedModifier;                     //速度修改
    public AnimAttackData AnimAttackData;               //动画攻击数据


	private AgentOrder() { Type = E_OrderType.E_NONE; }


	public AgentOrder(E_OrderType type) { Type = type; }
}
